home *** CD-ROM | disk | FTP | other *** search
/ Connect for Success / Connect for Success - Wilson Management Learning.ISO / pc / setup / setup.mst < prev    next >
Encoding:
Text File  |  1993-12-27  |  19.0 KB  |  541 lines

  1. '**************************************************************************
  2. '*                       Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST ADDHELP       = 900
  19. CONST QTNONE        = 1100
  20. CONST QTOLDER       = 1200
  21. CONST QTNEWER       = 1300
  22. CONST QTINCOMPLETE  = 1400
  23. CONST AWOLDER       = 1500
  24. CONST AWNEWER       = 1600
  25. CONST RESTART       = 1700
  26. CONST MODELESS      = 5000
  27. CONST TOOBIG        = 6300
  28. CONST BADPATH       = 6400
  29.  
  30. ''Bitmap ID
  31. 'CONST LOGO = 1
  32.  
  33. GLOBAL CUIDLL$
  34. GLOBAL WinDrive$        ''Drive letter Windows is installed.
  35. GLOBAL SrcDir$          ''Drive letter Windows is installed.
  36. GLOBAL QTWSrcDir$       ''Drive letter Windows is installed.
  37. GLOBAL DestDir$         ''Default destination directory for QT.
  38. GLOBAL FileCount%      
  39. GLOBAL FileChk%         ''Used to check if must restart windows
  40. GLOBAL AutoexecWasModified% 
  41. GLOBAL szSectionYear%
  42. GLOBAL szSectionMonth%
  43. GLOBAL szSectionDay%
  44.  
  45. DECLARE SUB      PromptQT (szType%)
  46. DECLARE SUB      CreateIcon
  47. DECLARE FUNCTION FontFiles AS INTEGER
  48. DECLARE FUNCTION QTFilesOkay (szTemp$) AS INTEGER
  49. DECLARE FUNCTION AWFilesOkay (szTemp$) AS INTEGER
  50. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  51. DECLARE FUNCTION VerifyDate (szDate$) AS INTEGER
  52. DECLARE FUNCTION GetNewDestination ( szDir$ ) AS STRING
  53. DECLARE FUNCTION AddToPath LIB "mscuistf.dll" (szIn$, szOut$, szDest$) AS INTEGER
  54. DECLARE FUNCTION AddFontToSystem LIB "mscuistf.dll" (szDesc$, szFile$) AS INTEGER
  55.  
  56.  
  57. INIT:
  58.     SetTitle "Wilson Learning's Connect For Success"
  59.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  60.  
  61.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  62.     IF szInf$ = "" THEN
  63.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  64.     END IF
  65.     ReadInfFile szInf$
  66.  
  67.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  68.     IF IsDriveValid(WinDrive$) = 0 THEN
  69.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  70.         GOTO QUIT
  71.     END IF
  72.  
  73. WELCOME:
  74.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  75.     IF sz$ = "CONTINUE" THEN
  76.         UIPop 1
  77.     ELSE
  78.         GOSUB ASKQUIT
  79.         GOTO WELCOME
  80.     END IF
  81.  
  82.  
  83.     FileCount% = 12
  84.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  85.     QTWSrcDir = MakePath(SrcDir$,"QTW")
  86.     AutoexecWasModified% = 0
  87.     ClearCopyList
  88.     CopyYes% = 0
  89.  
  90.  
  91.     IF QTFilesOkay("") = 0 THEN
  92.         CopyYes% = 1
  93.         IF AutoexecWasModified% = 1 THEN
  94. PROMPT:
  95.                 sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  96.                 IF sz$ = "CONTINUE" THEN
  97.                         UIPop 1
  98. '                        i% = AddToPath( "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", DestDir$)
  99.                         PrependToPath "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", DestDir$, cmovital
  100.                 ELSEIF sz$ = "REACTIVATE" THEN
  101.                         GOTO PROMPT
  102.                 ELSEIF sz$ = "EXIT" THEN
  103.                         GOSUB ASKQUIT
  104.                         GOTO PROMPT
  105.                 END IF
  106.  
  107.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  108.                        CopyFile "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.BAK", cmoOverwrite, 0
  109.                        CopyFile "C:\AUTOEXEC.QTW", "C:\AUTOEXEC.BAT", cmoOverwrite, 0
  110. ''                          RemoveFile "C:\AUTOEXEC.QTW", cmoForce
  111.                 ENDIF
  112.         ENDIF
  113.     ENDIF
  114.  
  115. ''    IF AWFilesOkay("") = 0 THEN
  116. ''        CopyYes% = 1
  117. ''    ENDIF
  118.  
  119.     IF CopyYes% = 1 THEN
  120.         CopyFilesInCopyList
  121.     ENDIF
  122.  
  123.     IF FontFiles() = 0 THEN
  124.         CopyFilesInCopyList
  125.     ENDIF
  126.  
  127.     CreateIcon
  128.  
  129.     IF AutoexecWasModified% = 1 THEN
  130. WARN:
  131.         sz$ = UIStartDlg(CUIDLL$, ADDHELP, "FInfoDlgProc", 0, "")
  132.         IF sz$ = "REACTIVATE" THEN
  133.                 GOTO WARN
  134.         ENDIF
  135.         UIPop 1
  136.     ENDIF
  137.  
  138.  
  139. QUIT:
  140.     ON ERROR GOTO ERRQUIT
  141.  
  142.     IF ERR = 0 THEN
  143.         dlg% = EXITSUCCESS
  144.     ELSEIF ERR = STFQUIT THEN
  145.         dlg% = EXITQUIT
  146.     ELSE
  147.         dlg% = EXITFAILURE
  148.     END IF
  149. QUITL1:
  150.     IF dlg% = EXITQUIT THEN
  151.         UIPop 1
  152.         END
  153.     ELSEIF dlg% = EXITFAILURE THEN
  154.         dlg% = EXITQUIT
  155.     END IF
  156.  
  157.  
  158.     ' Check to see if system needs restarting 
  159.  
  160.     FileChk% = RestartListEmpty
  161.     IF filechk = 0  THEN    'need to restart windows
  162.       sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfoDlgProc", 0, "")
  163.       IF sz$ = "CONTINUE" THEN
  164.           FileChk% = ExitExecRestart()
  165.       ELSE
  166.           UIPop 1
  167.       END IF
  168.     END IF
  169.  
  170.  
  171.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  172.     IF sz$ = "REACTIVATE" THEN
  173.         GOTO QUITL1
  174.     END IF
  175.     UIPop 1
  176.     END
  177.  
  178. ERRQUIT:
  179.     i% = DoMsgBox("Setup sources were corrupted.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  180.     END
  181.  
  182.  
  183.  
  184. BADPATH:
  185.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  186.     IF sz$ = "REACTIVATE" THEN
  187.         GOTO BADPATH
  188.     END IF
  189.     UIPop 1
  190.     RETURN
  191.  
  192. ASKQUIT:
  193.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  194.  
  195.     IF sz$ = "EXIT" THEN
  196.         UIPopAll
  197.         ERROR STFQUIT
  198.     ELSEIF sz$ = "REACTIVATE" THEN
  199.         GOTO ASKQUIT
  200.     ELSE
  201.         UIPop 1
  202.     END IF
  203.     RETURN
  204.  
  205.  
  206. '** Purpose:
  207. '**     Appends a file name to the end of a directory path,
  208. '**     inserting a backslash character as needed.
  209. '** Arguments:
  210. '**     szDir$  - full directory path (with optional ending "\")
  211. '**     szFile$ - filename to append to directory
  212. '** Returns:
  213. '**     Resulting fully qualified path name.
  214. '*************************************************************************
  215. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  216.     IF szDir$ = "" THEN
  217.         MakePath = szFile$
  218.     ELSEIF szFile$ = "" THEN
  219.         MakePath = szDir$
  220.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  221.         MakePath = szDir$ + szFile$
  222.     ELSE
  223.         MakePath = szDir$ + "\" + szFile$
  224.     END IF
  225. END FUNCTION
  226.  
  227. '**
  228. '** Purpose:
  229. '** Arguments:
  230. '** Returns:
  231. '*************************************************************************
  232. FUNCTION QTFilesOkay (szTemp$) STATIC AS INTEGER
  233.  
  234.         sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "")
  235.         QTFilesOkay = 1
  236.         szFile$ = GetSectionKeyFilename("Quick Time", "QT 1")
  237.         szDir$ = FindFileUsingFileOpen(szFile$)
  238.         IF szDir$ = "" THEN                             '' FILE NOT FOUND 
  239.                 UIPop 1
  240.                 PromptQT QTNONE
  241.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  242.                         szDir$ = WinDrive$ + ":\QTW\BIN"
  243.                         szDir$ = GetNewDestination(szDir$)
  244.                         IF DoesDirExist(szDir$) = 0 THEN
  245.                                 CreateDir szDir$, cmoNone
  246.                         END IF
  247.                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  248.                         DestDir$ = szDir$
  249.                         AutoexecWasModified% = 1
  250.                         QTFilesOkay = 0
  251.                 END IF
  252.         ELSE                                            '' FILE WAS FOUND
  253.                 szDate$ = GetDateOfFile(szDir$)
  254.                 szDir$ = MID$(szDir$, 1, (LEN(szDir$) - LEN(szFile$) - 1))
  255.                 szSectionDate$ = GetSectionKeyDate("Quick Time", "QT 1")
  256.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  257.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  258.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  259.  
  260.                 tmpVal% = VerifyDate(szDate$)
  261.                 IF tmpVal% <> 0 THEN
  262.                         UIPop 1
  263.                         IF tmpVal% = 1 THEN
  264.                                 PromptQT QTOLDER
  265.                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  266.                                         szTmp$ = szDir$
  267.                                         szDir$ = GetNewDestination(szTmp$)
  268.                                         IF szDir$ <> szTmp$ THEN
  269.                                                 AutoexecWasModified% = 1
  270.                                                 IF DoesDirExist(szDir$) = 0 THEN
  271.                                                         CreateDir szDir$, cmoNone
  272.                                                 END IF
  273.                                         ENDIF
  274.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  275.                                         QTFilesOkay = 0
  276.                                 ENDIF
  277.                         ELSE
  278.                                 PromptQT QTNEWER
  279.                                 IF GetSymbolValue("ButtonChecked") = "2" THEN
  280.                                         szTmp$ = szDir$
  281.                                         szDir$ = GetNewDestination(szTmp$)
  282.                                         IF szDir$ <> szTmp$ THEN
  283.                                                 AutoexecWasModified% = 1
  284.                                                 IF DoesDirExist(szDir$) = 0 THEN
  285.                                                         CreateDir szDir$, cmoNone
  286.                                                 END IF
  287.                                         ENDIF
  288.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  289.                                         QTFilesOkay = 0
  290.                                 ENDIF
  291.                         ENDIF
  292.                 ELSE
  293.                         FOR i% = 2 TO FileCount% STEP 1
  294.                                 szKey$ = "QT" + STR$(i%)
  295.                                 szFile$ = GetSectionKeyFilename("Quick Time", szKey$)
  296.                                 szFullPathFile$ = MakePath(szDir$, szFile$)
  297.                                 szDate$ = GetDateOfFile(szFullPathFile$)
  298.                                 IF DoesFileExist(szFullPathFile$, femExists) = 0 THEN
  299.                                 UIPop 1
  300.                                         PromptQT QTINCOMPLETE
  301.                                         IF GetSymbolValue("ButtonChecked") = "1" THEN
  302.                                                 szTmp$ = szDir$
  303.                                                 szDir$ = GetNewDestination(szTmp$)
  304.                                                 IF szDir$ <> szTmp$ THEN
  305.                                                         AutoexecWasModified% = 1
  306.                                                         IF DoesDirExist(szDir$) = 0 THEN
  307.                                                                 CreateDir szDir$, cmoNone
  308.                                                         END IF
  309.                                                 ENDIF
  310.                                                 AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  311.                                                 QTFilesOkay = 0
  312.                                         ENDIF
  313.                                         i% = FileCount%
  314.                         ELSE 
  315.                         tmpVal% = VerifyDate (szDate$)
  316.                         IF tmpVal% <> 0 THEN
  317.                                 UIPop 1
  318.                             PromptQT QTINCOMPLETE
  319.                                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  320.                                                         szTmp$ = szDir$
  321.                                                         szDir$ = GetNewDestination(szTmp$)
  322.                                                         IF szDir$ <> szTmp$ THEN
  323.                                                                 AutoexecWasModified% = 1
  324.                                                                 IF DoesDirExist(szDir$) = 0 THEN
  325.                                                                         CreateDir szDir$, cmoNone
  326.                                                                 END IF
  327.                                                         ENDIF
  328.                                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  329.                                                         QTFilesOkay = 0
  330.                                                 ENDIF
  331.                                                 i% = FileCount%
  332.                         ELSEIF i% = 12 THEN
  333.                                 UIPop 1
  334.                         ENDIF
  335.                         ENDIF
  336.                         NEXT i%
  337.                 END IF
  338.         END IF
  339. END FUNCTION
  340.  
  341.  
  342. '**
  343. '** Purpose:
  344. '** Arguments:
  345. '** Returns:
  346. '*************************************************************************
  347. FUNCTION AWFilesOkay (szTemp$) STATIC AS INTEGER
  348.  
  349.         AWFilesOkay = 1
  350.         szFile$ = GetSectionKeyFilename("Authorware", "AW 1")
  351.         szDir$ = MakePath(GetWindowsDir, szFile$)
  352.         IF DoesFileExist(szDir$, femExists) = 0 THEN
  353.                 AddSectionFilesToCopyList "Authorware", MakePath(SrcDir$,"AW"), GetWindowsDir
  354.                 AWFilesOkay = 0
  355.         ELSE
  356.         ' check date
  357.                 szDate$ = GetDateOfFile(szDir$)
  358.                 szSectionDate$ = GetSectionKeyDate("Authorware", "AW 1")
  359.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  360.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  361.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  362.                 tmpVal% = VerifyDate(szDate$)
  363.                 IF tmpVal% = 1 THEN
  364.                         PromptQT AWOLDER
  365.                         IF GetSymbolValue("ButtonChecked") = "1" THEN
  366.                                 AddSectionFilesToCopyList "Authorware", MakePath(SrcDir$,"AW"), GetWindowsDir
  367.                                 AWFilesOkay = 0
  368.                         ENDIF
  369.                 ELSEIF tmpVal% = 2 THEN
  370.                         PromptQT AWNEWER
  371.                         IF GetSymbolValue("ButtonChecked") = "2" THEN
  372.                                 AddSectionFilesToCopyList "Authorware", MakePath(SrcDir$,"AW"), GetWindowsDir
  373.                                 AWFilesOkay = 0
  374.                         ENDIF
  375.                 ENDIF
  376.         ENDIF
  377.  
  378. END FUNCTION
  379.  
  380. '**
  381. '** Purpose: 
  382. '** Arguments:
  383. '** Returns:
  384. '**     0=same, 1=older, 2=newer -- than section date
  385. '*************************************************************************
  386. FUNCTION VerifyDate ( szDate$ ) STATIC AS INTEGER
  387.  
  388.         VerifyDate = 0
  389.         newval% = GetYearFromDate(szDate$)
  390.         IF (newval% <> szSectionYear%) THEN
  391.                 IF (newval% < szSectionYear%) THEN
  392.                         VerifyDate = 1
  393.                 ELSE
  394.                         VerifyDate = 2
  395.                 END IF
  396.                 GOTO DONE1
  397.         END IF
  398.  
  399.         newval% = GetMonthFromDate(szDate$)
  400.         IF (newval% <> szSectionMonth%) THEN
  401.                 IF (newval% < szSectionMonth%) THEN
  402.                         VerifyDate = 1
  403.                 ELSE
  404.                         VerifyDate = 2
  405.                 END IF
  406.                 GOTO DONE1
  407.         END IF
  408.  
  409.         newval% = GetDayFromDate(szDate$)
  410.         IF (newval% <> szSectionDay%) THEN
  411.                 IF (newval% < szSectionDay%) THEN
  412.                         VerifyDate = 1
  413.                 ELSE
  414.                         VerifyDate = 2
  415.                 END IF
  416.                 GOTO DONE1
  417.         END IF
  418. DONE1:
  419.  
  420. END FUNCTION
  421.  
  422.  
  423. '**
  424. '** Purpose: 
  425. '** Arguments:
  426. '** Returns:
  427. '*************************************************************************
  428. FUNCTION GetNewDestination ( szDir$ ) STATIC AS STRING
  429.  
  430.         GetNewDestination = szDir$        
  431. GETPATH:
  432.         SetSymbolValue "EditTextIn", szDir$
  433.         SetSymbolValue "EditFocus", "END"
  434.  
  435. GETPATHL1:
  436.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  437.  
  438.     IF sz$ = "CONTINUE" THEN
  439.         GetNewDestination = GetSymbolValue("EditTextOut")
  440.         UIPop 1
  441.     ELSEIF sz$ = "REACTIVATE" THEN
  442.         GOTO GETPATHL1
  443.     ELSEIF sz$ = "EXIT" THEN
  444.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  445. TMP1:
  446.         IF sz$ = "EXIT" THEN
  447.                 UIPopAll
  448.                 ERROR STFQUIT
  449.         ELSEIF sz$ = "REACTIVATE" THEN
  450.                 GOTO TMP1
  451.         ELSE
  452.                 UIPop 1
  453.         END IF
  454.         GOTO GETPATHL1
  455.     ELSE
  456.         UIPop 1
  457.     END IF
  458.  
  459. END FUNCTION
  460.  
  461. '**
  462. '** Purpose: 
  463. '** Arguments:
  464. '** Returns:
  465. '*************************************************************************
  466. SUB PromptQT (szType%) STATIC
  467.  
  468.         SetSymbolValue "ButtonChecked", "1"
  469. QT1:
  470.         sz$ = UIStartDlg(CUIDLL$, szType%, "FRadioDlgProc", 0, "")
  471.         IF sz$ = "CONTINUE" THEN
  472.                 UIPop 1
  473.         ELSEIF sz$ = "REACTIVATE" THEN
  474.                 GOTO QT1
  475.         ELSEIF sz$ = "EXIT" THEN
  476.                 sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  477. QT2:
  478.                 IF sz$ = "EXIT" THEN
  479.                         UIPopAll
  480.                         ERROR STFQUIT
  481.                 ELSEIF sz$ = "REACTIVATE" THEN
  482.                         GOTO QT2
  483.                 ELSE
  484.                         UIPop 1
  485.                 END IF
  486.                 GOTO QT1
  487.         END IF
  488. END SUB
  489.  
  490. '**
  491. '** Purpose: Creates a Program Group and a Program Item
  492. '** Arguments: None
  493. '** Returns: Nothing
  494. '*************************************************************************
  495. SUB CreateIcon STATIC
  496.  
  497.     CreateProgmanGroup "Wilson Learning", "", cmoNone
  498.     ShowProgmanGroup   "Wilson Learning", 1, cmoNone
  499.     CreateProgmanItem  "Wilson Learning", "Connect For Success", MakePath(SrcDir$,"CFS\CFSSTD.EXE"), "", cmoOverwrite
  500.     CreateProgmanItem  "Wilson Learning", "Connect For Success -lite", MakePath(SrcDir$,"CFS\CFSLTE.EXE"), "", cmoOverwrite
  501.     CreateProgmanItem  "Wilson Learning", "Read Me", "write "+MakePath(SrcDir$,"readme.wri"), "", cmoOverwrite
  502.  
  503. END SUB
  504.  
  505.  
  506. '**
  507. '** Purpose: 
  508. '** Arguments:
  509. '** Returns:
  510. '*************************************************************************
  511. FUNCTION FontFiles STATIC AS INTEGER
  512.    
  513.         FontFiles = 1
  514.         szFile$ = GetSectionKeyFilename("Fonts", "Font 1")
  515.         szDir$ = MakePath(GetWindowsSysDir, szFile$)
  516.  
  517.         IF DoesFileExist(szDir$, femExists) = 0 THEN
  518.                 AddSectionFilesToCopyList "Fonts", MakePath(SrcDir$,"CFS"), GetWindowsSysDir
  519.                 FontFiles = 0
  520.         ELSE
  521.         ' check date
  522.                 szDate$ = GetDateOfFile(szDir$)
  523.                 szSectionDate$ = GetSectionKeyDate("Fonts", "Font 1")
  524.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  525.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  526.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  527.                 tmpVal% = VerifyDate(szDate$)
  528.  
  529.                 IF tmpVal% = 1 THEN
  530.                       AddSectionFilesToCopyList "Fonts", MakePath(SrcDir$,"CFS"), GetWindowsSysDir
  531.                       FontFiles = 0
  532.                 ELSEIF tmpVal% = 2 THEN
  533.                       FontFiles = 1
  534.                 ENDIF
  535.         ENDIF
  536.         r% = AddFontToSystem("Mac Palatino 10,12,14,18,24", "MPALTINO.FON")
  537.  
  538. END FUNCTION
  539.  
  540.  
  541.